Development of software and hardware products includes a development stage and a testing life cycle. The testing life cycle includes writing a test plan, designing test cases to implement the test plan, and executing the test cases on a target product to ensure the target product is of suitable quality. A target product may be hardware, software, or a combination of hardware and software. Because test case execution is a complex, time consuming, and resource intensive process, test automation utilizing test automation frameworks (TAF) may be utilized to reduce the resources utilized in executing test cases. TAFs refer to the use of software and hardware to execute a test case on a target product.
Test automation includes a TAF that executes a test scripts. A test script is a programmed code that automates the test case by calling subroutines or application programming interfaces (APIs) exported by the TAF. The TAF provides the backend support for executing test script, including the infrastructure for creating processes and tracking and controlling remote test setups.
A test case may include complex logic in which multiple processes, tools, and systems are utilized. The test case may include parallel and sequential processes, with each process performing one or more testing functions. Generating a test script that, when executed by the TAF, will perform the test case includes developing, reviewing, and debugging the test script code, which may be time intensive.
Test script code for test case automation is desirably generated by a script developer who has expertise in the target product under test, including the user interface of the target product, as well as expertise in test automation in a TAF environment, including developing test plans and test cases utilized for the testing and programming test scripts in the scripting language utilized for testing, such as, for example, Perl, Python, shell, C, C++, or Java. In practice, finding a single person with the desired level of expertise in the target product and test automation in a TAF environment may be difficult. For example, a product engineer may have sufficient expertise in the target product, but may lack sufficient expertise in test case automation. Alternatively, a software engineer may have sufficient expertise in test case automation, but may lack sufficient expertise in the target product to adequately design test plans and test cases.
Improvements to test cases automation are desired.